Recent developments in data communications have created the need for increasing the amount and speed of data transmitted. As the volume of data communicated increases, there is an increased desired for greater transmission speeds over various media. One limitation to greater transmission speeds is the decreased reliability of data signals at high speeds. That is, high speed transmission of digital data is limited by the reliability of cost effective transmission media.
Digital communication networks are one place where higher transmission speeds are desirable. Data is often broken into smaller segments, or packetized, at a transmitting device before it is transmitted over the network. A receiving device reconstructs the packets to rebuild the data into its original form. The packets may be transmitted over one or more physical or logical channels from the transmitting device to the receiving device on the network.
A channel may represent a different transmission path between two or more devices on the network. A channel may be comprised of a single transmission medium or different transmission mediums. Channel media may include twisted pair, coaxial cable, fiber optic, and/or air.
Ideally, packet transmissions would be synchronized throughout the network. However, it is often impractical or impossible to synchronize data transmissions between multiple devices. In many cases it may not be possible to provide a single synchronizing clock to all devices on the network.
A problem with transmission schemes is the inherent rate differences between clocks. That is, even clocks with the same specified frequency have small differences or errors over many cycles. Over time, these small errors between clock rates may result in processing errors of data received over a channel. For instance, differences between the write clock and the read clock of a transmission channel at a receiving device may result in skipping or corrupting data.
Accordingly, there is a need for a method and/or apparatus that can match the frequencies of transmitting and receiving clocks across a transmission channel.